package controlador;


import IDE.Vista;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import lexico.analizador;
import modelo.Modelo;

public class Controlador implements ActionListener {

    private Vista vista;
    private Modelo modelo;
    private analizador compi;
    private String rut_arc;
    private JLabel nombre;
    private JTextArea texto;
   

    public Controlador(Vista vista) {
        this.vista = vista;
        modelo = new Modelo(vista);
        compi = new analizador(vista);//vista);
        nombre = new JLabel ();
        nombre = vista.getjLabel1();
        texto= this.vista.getTxtCodigo();
        
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().compareToIgnoreCase("Abrir") == 0) {
            //

              FileDialog fc;
              fc = new FileDialog(vista, " Abrir  Proyecto ", FileDialog.LOAD);
              fc.setDirectory("C:\\");
              fc.setVisible(true);
              String fn = fc.getFile();
              String rut = fc.getDirectory();

             if (fn == null)
               System.out.println("No selecciono nada");
             else
             {  System.out.println("Ha Selecionado " + rut+fn);
                rut_arc=rut+fn;
                nombre.setText("Archivo: "+fn);
                modelo.manipularArchivo(rut+fn, "r");
                 
             }



        } else if (e.getActionCommand().compareToIgnoreCase("Salir") == 0) {
            System.exit(0);
        } else if (e.getActionCommand().compareToIgnoreCase("Guardar") == 0) {
            if (nombre.getText().compareTo("Archivo : Sin nombre")==0)
            {

              FileDialog fc;
              fc = new FileDialog(vista, " Abrir  Proyecto ", FileDialog.LOAD);
              fc.setDirectory("C:\\");
              fc.setVisible(true);
              String fn = fc.getFile();
              String rut = fc.getDirectory();

             if (fn == null)
               System.out.println("No selecciono nada");
             else
             {  System.out.println("Ha Selecionado " + rut+fn);
                rut_arc=rut+fn;
                nombre.setText("Archivo: "+fn);
                modelo.guardar(rut+fn);
                
             }
            }
            else
            {
                modelo.guardar(rut_arc);
            }


        }  else if (e.getActionCommand().compareToIgnoreCase("Guardar como") == 0) {

            FileDialog fc;
              fc = new FileDialog(vista, " Abrir  Proyecto ", FileDialog.LOAD);
              fc.setDirectory("C:\\");
              fc.setVisible(true);
              String fn = fc.getFile();
              String rut = fc.getDirectory();

             if (fn == null)
               System.out.println("No selecciono nada");
             else
             {  System.out.println("Ha Selecionado " + rut+fn);
                rut_arc=rut+fn;
                nombre.setText("Archivo: "+fn);
                modelo.guardar(rut+fn);

             }



        }else if (e.getActionCommand().compareToIgnoreCase("Compilar") == 0) {
            try {

                if (rut_arc==null)
                {
                System.out.println("Archivo sin guardar...");
                }
                else
                {     System.out.println("Compilando...");
                      compi.analizar(rut_arc);
                      
                }

            } catch (IOException ex) {
                Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
            }

           
        }else if (e.getActionCommand().compareToIgnoreCase("Nuevo") == 0) {
             rut_arc=null;
             nombre.setText("Archivo : Sin nombre");
              texto.setText("");

        }
    }

   
}
